class PathManager:
    # 类方法
    @classmethod
    def r_search_n(cls, s, c, n):
        r = s.rfind(c)

        while n > 1 and r >= 0:
            r = s.rfind(c, 0, r)
            n -= 1
        return r

    # 如果第二个路径是绝对路径则直接返回，如果是相对路径则拼接后返回
    # 类方法
    @classmethod
    def pathJoin(cls, pa, pb):
        pa.replace('\\', '/')
        pb.replace('\\', '/')

        # 如果是绝对路径则直接返回
        if pb[0] == '/':
            return pb
        # 如果是相对路径
        elif pb[0] == '.':
            # ..出现的次数
            layer = pb.count('..')
            n = cls.r_search_n(pa, '/', layer)
            pa = pa[0:n]
            begin = pb.rfind('..')
            begin += 2
            pb = pb[begin:]
            return pa + pb
